Mobile communication systems are dynamic systems where a huge number of characteristics varies all the time. The number of users, the types of services they use, the environment where the terminals are situated and the quality of the available connection, are examples of the varying parameters in mobile communication networks. When a certain observation is made (some quantity is measured or some change is observed in a system, for example) in the operation of the system, a desired policy can be triggered as a response. In other words, in order to create a functioning dynamic system (such as a mobile communication system) behaving as required, users and operators of the system can set policies, which define responses and actions in various situations that may occur. The policies must be configured and after that, managed, which can be called as a human interface of the policy control mechanism. Furthermore, the resolution and enforcement of the policies form the automated part of such a mechanism. It can be said that a trigger event initiates the resolution of a policy by acting as an input, and then instructions are sent as output which enforce the resolved policy action.
These inputs and outputs (the trigger events and policy actions, correspondingly) can generally be called as state changes. Trigger events are state changes already happened in the past while policy actions are state changes happening in the future. There is a possibility that some policies become trigger events for subsequent policies. This can happen because the only difference between a trigger event and a policy action is their timing and probability. There is a unidirectional causal relationship between the trigger events and policy actions where one state change can be traced forwards or backwards to another state change.
One example of a policy control mechanism is a multi-access situation where a device has multiple interfaces, logical accesses and connected network domains where connections can be established and traffic flows thereby occur. The device can have access to these multiple networks sequentially or simultaneously. Policies are therefore needed to describe which connection is acceptable over a particular network. Policies can also be used for managing the connections, such as switching between two connections in order to maintain connection quality.
One example of the policy resolution can include the following steps. When an interface is losing connectivity to a network, it can be detected as a trigger event. A new interface with a reachable connection is then needed to be found which can be called as a policy action. Also the joining into the new network, breaking out from the old connection and moving all traffic to the new network can be called as policy actions.
The policies can be very complicated and multiple trigger events can be received during a very short time period. Problems may arise concerning the scheduling of the policy actions. A decision must be made whether several policy actions considering the same device or connection are combined into one policy action or all policy actions are executed consecutively.
The inputs and outputs of the policy control mechanism, or generally state changes, could be provided with static priorities. The sorting process may be done simply by executing the highest priority task first, the second highest after that, and so forth. Alternatively, the sorting process can be done by giving weights to different classes of state changes. The criteria for the weight decisions can be made based on source or destination of the policy event or by looking at the severity of the event, which is to be recovered by the policy action.
The problem in prior art solutions is that the policy enforcement is not as efficient and quick as possible.